perm filename PUBSET[LIB,LSP] blob
sn#294633 filedate 1977-07-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .<< LISP Manual !!!!!! >>
C00011 00003
C00012 ENDMK
C⊗;
.<< LISP Manual !!!!!! >>
.
.font 1 "30vr1.fnt[fnt,jp]"
.font 2 "30vri1.fnt[fnt,jp]"
.font 3 "30flsp.fnt[fnt,jp]"
.font 4 "37vrbl.fnt[fnt,jp]"
.font 5 "s30num.fnt[fnt,jp]"
.select 1
.if not xcribl then tty←"Did you forget to say /X ?";
.
.if xcribl then
. start
. at "ffi" ⊂ "~" ⊃
. at "ffl" ⊂ "∞" ⊃
. at "fi" ⊂ "≡" ⊃
. at "fl" ⊂ "∨" ⊃
. at "ff" ⊂ "≥" ⊃
. end
.
.<< Maybe this should be hacked for no margins and photo-reduction? >>
.evenleftborder←1400; oddleftborder←1400
.if xcribl
. then start page!height←51; page!width←70; end
. else start page!height←51; page!width←80; end
.page frame page!height high page!width wide;
.first!text!line←5; last!text!line←page!height-4;
.area text lines first!text!line to last!text!line
.title area heading line 2
.title area footing line page!height-2
.place text
. << 1-1/2" margins all around >> << well... >>
.turn on "ε" for "%", "∂", "{", "∀" for "\", "→∞"
. << ε font, ∂ move over, ∀ tab, → flush right, ∞ fill chr >>
. draught←"**DRAFT**";
.tty←""; tty←"Is this crock a draft version?"; mumblage←tty;
.if mumblage = "no" then start "mumbling"
. draught←"";
. tty←"I hope you know what you are doing.";
. end "mumbling";
.
.even heading ("{draught}", "Maclisp Reference Manual", "{draught}")
.odd heading ("{draught}", "{chaptertitle}", "{draught}")
.even footing ("Page {page!}", "{onsec}", "{date}")
.odd footing ("{date}", "{onsec}", "Page {page!}")
. chaptertitle←null
.
.retain << note that PP indentation has been removed >>
.indent 3,0,0
.<< The following can't be used, PUB gets rather screwed up >>
.<<if not xcribl then fill preface 1;>>
.<<if xcribl then fill preface 180 mills;>> << about 2/3 line >>
.macro fun indent ⊂ indent 5,5; ⊃ <<indent for function descrip - note no PP>>
.
.macro ne (εamt) ⊂ if lines < amt then skip lines ⊃
.
.
.
.<< indexing macros >>
.
.!extrafile←"←pubtt >"; <<init extra file for index cruft>>
.
.!extrafile←".part("&part&");";
.
.macro ixf (fnc,annotation) ⊂ !extrafile←".ixf(""fnc"",""annotation"","""&page!&""");";
.⊃
.
.macro ixc (concep) ⊂ !extrafile←".ixc(""concep"","""&page!&""");";
.⊃
.
.macro ixv (atm) ⊂ !extrafile←".ixv(""atm"","""&page!&""");";
.⊃
.
.<<send to table of contents - page numbers in special sans serif non bold font>>
.macro toce (εs,t) ⊂ send contents ⊂}s ∀t ∀∞.∞ →ε5{page!}ε1
.⊃
.⊃
.
.<< sectioning macros >>
.count partn from part;next partn;<<set by caller and never changed>>
.if part=null then count page from 1 to 40 printing "i";
.else count page from 1 to 400 in partn printing "!-1";
.count chap from 1 printing ⊂ if chap > 9 then chap
. else if chap > 0 then <<" " &>> chap
. else "ABCDEFG"[-chap for 1]
. ⊃
.count sec from 1 in chap printing ⊂ if sec > 0 then sec else "" ⊃
.count subsec from 1 in sec printing ⊂ if subsec > 0 then subsec else "" ⊃
.count subsubsec from 1 in subsec printing ⊂ if subsubsec > 0 then subsubsec else "" ⊃
.
. appendices←false;
.macro frob appendices ⊂ appendices←true; chap←0 ⊃ << frob the appendices >>
.
.if part = null then partfrob←null else partfrob←"∪" & part & "-"; << section sign >>
.
.onsec←null;
.
.macro chapter (t,nm) ⊂
.select 1
.if appendices then start chap←chap-2; next page; end;
.if not appendices then if chap neq null then odd page;
.next chap; onsec←"ε5"&partfrob&chap!&".ε1";
.send contents ⊂
.⊃ << blank line between chapters >>
.toce(chap!&".","t");
. chaptertitle←"t"
.skip to line 2
. fill; lmarg←0; indent 3,0,0 << in case screwed in prev chap >>
.once indent1←0
ε4{chap!}. tε1
.break;skip 1
.require "lspman;nm >" source ;
.⊃
.
.
.macro section (t) ⊂ next sec; if sec > 1 then next page; else ne 8;
.onsec←"ε5"&partfrob&chap!&"."&sec!&"ε1";
.toce(chap! & "." & sec,"t"); once indent1←0; lmarg←0;
ε4{chap!}.{sec} tε1
.break skip
.⊃
.
.macro subsection (t) ⊂ next subsec;
.ne 5; onsec←"ε5"&partfrob&chap!&"."&sec!&"."&subsec!&"ε1";
.skip; toce(chap! & "." & sec & "." & subsec,"t")
.once indent1←0;lmarg←0;
ε4{chap!}.{sec}.{subsec} tε1
.break skip
.⊃
.
.macro subsubsection (t) ⊂ next subsubsec
.ne 5; onsec←"ε5"&partfrob&chap!&"."&sec!&"."&subsec!&"."&subsubsec!&"ε1";
.toce(chap! & "." & sec & "." & subsec & "." & subsubsec,"t")
.skip
.once indent1←0;lmarg←0;
ε4{chap!}.{sec}.{subsec}.{subsubsec} tε1
.break skip
.⊃
.
.recursive macro odd page ⊂
.next page; if << (page mod 2) = 0 >> even page then start
.skip to line 20; once center
.<< This page intentionally left blank. >>
.break;next page
.end
.⊃
.
.<< Cross-reference macros >>
.
.<<new style, using refcrf file>>
.
.macro defp (labl) ⊂
. !extrafile←".crf ""labl"",""page "&page!&""";";
.⊃
. <<eval("px!"&"labl"): page!>>
.
.macro refp (labl) ⊂
{(eval("px!"&"labl"))
.⊃
.<<macro refp (labl) ⊂}page {page! eval("px!"&"labl")⊃>>
.
.macro crf(labl,val) ⊂ eval("px!"&"labl")←"val";
.⊃
.
.<< by chapter >>
.
.<<macro defc (labl) ⊂eval("cx!"&"labl"): chap!>>
.<<⊃>>
.
.<<macro refc (labl) ⊂}Chapter {chap! eval("cx!"&"labl")⊃>>
.
. codeflag←false
.macro lisp ⊂
.if codeflag then tty←"extra .lisp";; codeflag←true;
.begin; group; nofill; skip 1
.indent1←indent1+3; << see fun indent macro >>
.⊃
.
.macro endlisp ⊂
.if not codeflag then tty←"extra .endlisp";
.apart; end; continue;
. codeflag←false;
.⊃
.
.if part neq null then start "parts-cont"; insert contents; end "parts-cont";
.
.portion normal!cruft
.
.next page
.